메일 서버 설치

✒️ 2025-05-22 15:25 내용 수정


메일 서버 관련 용어

용어 설명
MUA (Mail User Agent) 메일을 작성하는 프로그램
MDA (Mail Delivery Agent) LDA(Local Delivery Agent). 메일을 임시 저장하는 디렉터리. /var/spool/mqueue
MTA (Mail Transfer Agent) 메일을 송/수신하는 서버

mail.png

메일 관련 프로토콜

이름 설명
SMTP 메일 전송 서버
POP3 메일 수신 서버
IMAP 메일 수신 서버(메일 도착 알리미)
S/MIME 메일에 동영상, 이미지 등 첨부

Rocky 9에 메일 서버 만들기

1. 메일 서버 구축

  1. dnf -y install sendmail sendmail-cf dovecot로 메일 서버 관련 패키지를 다운 받은 후, rpm -aq | grep sendmailrpm -aq | grep dovecot으로 패키지를 확인한다.

mailserver 1.png

  1. /etc/hosts 파일에 cat >> /etc/hosts에 DNS 주소들을 등록하고, cat /etc/hosts으로 확인한다.
서버ip주소   mail.lnxtest.com
서버ip주소   www.lnxtest.com

mailserver 2.png

  1. /etc/mail/local-host-names 파일에 vi /etc/mail/local-host-names로 자신의 메일 서버를 등록한다.
mail.lnxtest.com

mailserver 3.png

  1. vi /etc/sysconfig/network로 /etc/sysconfig/network 파일의 설정을 변경한다.
HOSTNAME=mail.lnxtest.com

mailserver 4.png

  1. init 6재부팅한다.

  2. /etc/mail 디렉터리의 /etc/mail/sendmail.cf 파일을 vi /etc/mail/sendmail.cf로 수정한다.

85 : CWlocalhost -> Cw도메인이름 로 수정
268 : O DaemonPortOptions=Port=smtp, Name=MTA

---- 추가 옵션 ----
186 : O MaxMessageSize=0  // 메일의 첨부파일 용량제한
313 : O QueueDirectory=/var/spool/mqueue  // 임시저장폴더

mailserver 6.png

  1. 메일 서버 접속 설정을 위해 /etc/mail/access 파일을 vi /etc/mail/access로 편집한다.
    • 다른 컴퓨터의 DNS와도 연결할 때 이 부분에 추가해야 한다.
설정 설명
RELAY 허용
REJECT 거부. 거부 사유를 메시지로 보내줌
DISCARD 거부
도메인이름		RELAY
lnxtest.com		RELAY
192.168.100		RELAY  // 특정 ip 범위를 모두 허용

mailserver 7.png

  1. /etc/mail 디렉터리 안에는 기본파일과 기본파일.db이 함께 있다. 이 중에서 기본파일.db는 리눅스가 읽어야 하기에 컴파일을 진행해줘야 하므로 makemap hash /etc/mail/access < /etc/mail/access로 설정 파일을 컴파일한다.

    • 기본파일은 평문으로 작성되며, 기본파일.db가 컴파일 되는 파일
  2. 이번엔 dovecot 설정을 위해 /etc/dovecot/dovecot.conf 파일을 vi /etc/dovecot/dovecot.conf로 편집한다.

24 : protocols = imap pop3 lmtp submission  // 주석제거
30 : listen = *, ::         * = IPv4,   :: = IPv6  // 주석제거
33 : base_dir = /var/run/dovecot/  // 주석제거

mailserver 8.png

  1. /etc/dovecot/conf.d/10-ssl.conf 파일을 vi /etc/dovecot/conf.d/10-ssl.conf로 구문을 수정해준다.
8 : ssl = yes

mailserver 9.png

  1. /etc/dovecot/conf.d/10-mail.conf 파일을 vi /etc/dovecot/conf.d/10-mail.conf로 편집한다.
25 : mail_location = mbox:~/mail:INBOX=/var/mail/%u  // 주석제거
121 : mail_access_groups = mail  // 주석제거
166 : lock_method = fcntl  // 주석제거

mailserver 10.png

  1. 메일 서버 서비스를 systemctl restart sendmail로 재실행하거나, systemctl start sendmail로 실행하고, systemctl enable sendmail로 재부팅 시 옵션을 설정한 다음 systemctl status sendmail로 서비스 상태를 확인한다.
  2. dovecot 서비스도 systemctl restart dovecot 또는 systemctl start dovecot 재부팅 옵션을 systemctl enable dovecot 서비스 상태 확인을 systemctl status dovecot으로 진행한다.

mailserver 5.png
mailserver 11.png

  1. 연결 테스트를 위해 방화벽을 끈다.

    • systemctl disable firewalld && systemctl stop firewalld
    • vi /etc/sysconfig/selinux 로 SELINUX=disabled 으로 변경한다.
  2. Selinux의 설정을 변경했기에 init 6로 재부팅한다.


2. 메일 주고 받기 테스트

  1. Rocky에서 우측 상단의 현재 활동 - 목록(점 9개 아이콘) - 상단 검색 창에 evolution 이라고 입력한다.

mailserver 12.png

  1. 소프트웨어를 클릭하고 에볼루션을 선택한 뒤 설치를 누른다. 설치가 완료 되었다면 열기를 누른다.

mailserver 13.png

  1. 환영 페이지에서 다음을 누른다.

mailserver 14.png

  1. 백업에서 복구도 특별한 작업이 없다면 다음을 누른다.

mailserver 15.png

  1. 신상 정보에서 사용자 이름과 전자메일 주소를 사용자이름@도메인 으로 입력한다.
    • 사용자는 해당 리눅스에 등록된 계정을 사용해야 한다.

mailserver 16.png

  1. 메일 받기 설정을 변경한다.
옵션 설정 내용
서버 종류 POP
포트 995
서버 mail.도메인주소
사용자이름 앞에서 설정한 계정명
보안 암호화 방식 : TLS, 특정 포트 사용

mailserver 17.png

  1. 받기 옵션에서 특별한 옵션이 없다면 다음으로 넘어간다.

mailserver 18.png

  1. 메일 보내기 설정을 변경한다.
옵션 설정 내용
서버 종류 SMTP
포트 25
서버 mail.도메인주소
보안 암호화 없음

mailserver 19.png

  1. 계정 정보와 상세 정보들을 확인한 후 다음을 누른다.

mailserver 20.png

  1. 완료창이 뜨면 적용을 누른다.

mailserver 21.png

  1. 메일 창에서 새로 만들기를 누른다.

mailserver 22.png

  1. 테스트를 위해 자기 자신에게 테스트용 메일을 작성하고 우측 상단의 보내기 버튼을 누른다.

mailserver 23.png

  1. 메일창에서 보내기/받기 버튼을 누른다.

mailserver 24.png

  1. 인증서 신뢰 창이 뜨면 계속 허용을 누른다.
    • 해당 창이 안 뜬다면 다른 컴퓨터에 메일 송수신 테스트 시 메일이 전송되지 않는 문제가 생긴다.

mailserver 25.png

  1. 메인 인증 요청에서 등록된 사용자 이름과 암호를 입력한다.
    • 이 부분때문에 리눅스에 등록된 계정으로 메일 계정을 생성해야 한다.

mailserver 26.png

  1. 다시 보내기/받기 버튼을 누르면 테스트를 위해 보낸 메일이 도착한 것을 확인할 수 있다.
    • 실습용으로 여러 대의 컴퓨터 사용 시 메일 서버용 컴퓨터의 DNS를 다른 컴퓨터의 /etc/mail/access 파일에 도메인을 등록 후 컴파일을 진행해야 하며, 메일 서버용 컴퓨터에는 다른 컴퓨터의 도메인 zones 파일을 추가해야 서로 주고 받을 수 있었다.

mailserver 27.png